Refinement Calculus, Part I: Sequential Nondeterministic Programs
نویسندگان
چکیده
A lattice theoretic framework for the calculus of program reenement is presented. Speciications and program statements are combined into a single (innnitary) language of commands which permits miraculous, angelic and demonic statements to be used in the description of program behavior. The weakest precondition calculus is extended to cover this larger class of statements and a game-theoretic interpretation is given for these constructs. The language is complete, in the sense that every monotonic predicate transformer can be expressed in it. The usual program constructs can be deened as derived notions in this language. The notion of inverse statements is deened and its use in formalizing the notion of data reenement is shown.
منابع مشابه
A Calculus for Predicative Programming
A calculus for developing programs from specifications written as predicates that describe the relationship between the initial and final state is proposed. Such specifications are well known from the specification language Z. All elements of a simple sequential programming notation are defined in terms of predicates. Hence programs form a subset of specifications. In particular, sequential com...
متن کاملA Refinement Theory for Concurrent Object Oriented Languages
A notion of refinement for concurrent object-oriented programs was originally presented in [3]. ln th.is article we prove that the refinement relation associated to this notion is a congruence with respect to various standard programming language constructors, including parallel and sequential composition, conditionals, and nondeterministic internal choice. We also establish a weaker compositio...
متن کاملBuilding BSP Programs Using the Refinement Calculus
We extend the refinement calculus to permit the derivation of programs in the Bulk Synchronous Parallelism (BSP) style. This demonstrates that formal approaches developed for sequential computing can be generalised to (some) parallel computing environments, and may be useful for managing some of the details of programming in such situations.
متن کاملA refinement calculus for logic programs
Existing refinement calculi provide frameworks for the stepwise development of imperative programs from specifications. This paper presents a refinement calculus for deriving logic programs. The calculus contains a wide-spectrum logic programming language, including executable constructs such as sequential conjunction, disjunction, and existential quantification, as well as specification constr...
متن کاملConcurrent Refinement Algebra and Rely Quotients
The concurrent refinement algebra developed here is designed to provide a foundation for rely/guarantee reasoning about concurrent programs. The algebra builds on a complete lattice of commands by providing sequential composition, parallel composition and a novel weak conjunction operator. The weak conjunction operator coincides with the lattice supremum providing its arguments are non-aborting...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1989